//package com.amigo.online.gateway.filter;
//
//import javax.servlet.ReadListener;
//import javax.servlet.ServletInputStream;
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletRequestWrapper;
//import java.io.BufferedReader;
//import java.io.ByteArrayInputStream;
//import java.io.IOException;
//import java.io.InputStreamReader;
//import java.nio.charset.Charset;
//
///**
// * @author weihainan.
// * @since 0.1 created on 2017/2/23.
// */
//public class BodyReaderHttpServletRequestWrapper extends HttpServletRequestWrapper {
//
//    private byte[] body;
//
//    public BodyReaderHttpServletRequestWrapper(HttpServletRequest request) throws IOException {
//        super(request);
//        body = HttpHelper.getBodyString(request).getBytes(Charset.forName("UTF-8"));
//    }
//
//    @Override
//    public BufferedReader getReader() throws IOException {
//        return new BufferedReader(new InputStreamReader(getInputStream()));
//    }
//
//    @Override
//    public ServletInputStream getInputStream() throws IOException {
//
//        final ByteArrayInputStream bais = new ByteArrayInputStream(body);
//
//        return new ServletInputStream() {
//
//            @Override
//            public int read() throws IOException {
//                return bais.read();
//            }
//
//            @Override
//            public boolean isFinished() {
//                return false;
//            }
//
//            @Override
//            public boolean isReady() {
//                return false;
//            }
//
//            @Override
//            public void setReadListener(ReadListener readListener) {
//
//            }
//
//        };
//    }
//
//    public void setInputStream(byte[] body) {
//        this.body = body;
//    }
//}